gdkdisplay-wayland: Fix some memory leaks
authorTimm Bäder <mail@baedert.org>
Thu, 8 Sep 2016 08:45:25 +0000 (10:45 +0200)
committerTimm Bäder <mail@baedert.org>
Thu, 8 Sep 2016 09:34:13 +0000 (11:34 +0200)
gdk/wayland/gdkdisplay-wayland.c

index 3566d69fbe3a037e6c9cfeb9a502e5976e175cd6..cddb2dea51208cc469c9ec156649146f3a0d0444 100644 (file)
@@ -612,12 +612,24 @@ static void
 gdk_wayland_display_finalize (GObject *object)
 {
   GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (object);
+  guint i;
 
   _gdk_wayland_display_finalize_cursors (display_wayland);
 
   g_object_unref (display_wayland->screen);
 
   g_free (display_wayland->startup_notification_id);
+  g_free (display_wayland->cursor_theme_name);
+  xkb_context_unref (display_wayland->xkb_context);
+
+  for (i = 0; i < GDK_WAYLAND_THEME_SCALES_COUNT; i++)
+    {
+      if (display_wayland->scaled_cursor_themes[i])
+        {
+          wl_cursor_theme_destroy (display_wayland->scaled_cursor_themes[i]);
+          display_wayland->scaled_cursor_themes[i] = NULL;
+        }
+    }
 
   g_ptr_array_free (display_wayland->monitors, TRUE);